package org.batatasframework.vio.spi;

import org.batatasframework.vio.FileLoadModel;
import org.batatasframework.vio.LoadOption;
import org.batatasframework.vio.StoreOption;
import org.batatasframework.vio.VfileInfo;
import org.batatasframework.vio.VioException;

/**
 * <pre>
 * 可以定义在逻辑层使用，也可以在控制器层使用
 * 
 * 会不会有点乱？
 * </pre>
 * @author jackson
 *
 */
public interface VfileSystem {
	
	Vfile file(String path)throws VioException;
	Vfile file(String parentPath, String fileName)throws VioException;
	Vfile file(Vdirectory parent, String fileName)throws VioException;
	
	Vdirectory directory(String name)throws VioException;
	Vdirectory directory(Vdirectory parent, String name)throws VioException;
	
	VfileInfo load(LoadOption option, FileLoadModel model)throws VioException;
	VfileInfo store(StoreOption option)throws VioException;
}
